4b515f3fbc2d0dc2bfa2bc6986e1b73a20aff5e2,src/main/java/com/ryanharter/autogson/AutoGsonExtension.java,AutoGsonExtension,createSerializer,#String#String#Map#,91

Before Change



  FieldSpec createSerializer(String className, String classToExtend, Map<String, TypeName> properties) {
    ClassName annotatedClass = ClassName.bestGuess(classToExtend);
    String annotatedParamName = annotatedClass.simpleName().toLowerCase();
    ClassName serializerType = ClassName.get(JsonSerializer.class);
    ParameterizedTypeName jsonSerializer = ParameterizedTypeName.get(serializerType, annotatedClass);
    TypeSpec.Builder serializerImpl = TypeSpec.anonymousClassBuilder("")

After Change



    FieldSpec gsonField = FieldSpec.builder(Gson.class, "gson").build();

    String customTypeAdapterClass = String.format("%sTypeAdapter", annotatedClass.simpleName());
    TypeSpec.Builder classBuilder = TypeSpec.classBuilder(customTypeAdapterClass)
        .addModifiers(PUBLIC, STATIC, FINAL)
        .superclass(superClass)
        .addField(gsonField)
        .addMethod(MethodSpec.constructorBuilder()
                .addModifiers(PUBLIC)
                .addParameter(Gson.class, "gson")
                .addStatement("this.$N = gson", gsonField)
                .build()
        )
        .addMethod(createWriteMethod(gsonField, autoValueClassName, properties))
        .addMethod(createReadMethod(gsonField, className, autoValueClassName, properties));